home *** CD-ROM | disk | FTP | other *** search
/ Floppyshop 2 / Floppyshop - 2.zip / Floppyshop - 2.iso / art&graf.ix / art-0074 / mikrodrw / part_4.lst < prev   
File List  |  1997-04-16  |  3KB  |  92 lines

  1. '
  2. ' Mikrodraw
  3. '
  4. ' Part 4
  5. '
  6. ' Programmed by Konstantinos Lavassas
  7. '         January/February 1990
  8. '
  9. ' Editing: Ulrich Hilgefort
  10. '
  11. ' for:  TOS - Magazine + Software for Atari ST and TT
  12. '
  13. ' ----------------------------------------------------------------------------
  14. '
  15. ' It is necessary to use either hcp_9 (for 24-Pin) or hcp_9a (for 9-Pin).
  16. '
  17. > PROCEDURE drucken
  18.   '
  19.   ALERT 1," | Hardcopy ? ",1," klar | nein",zz%   ! Confirmation
  20.   IF zz%=2
  21.     GOTO end_druck
  22.   ENDIF
  23.   WHILE BIOS(8,0)=0                               ! Test Parallel port
  24.     ALERT 3," | Drucker nicht bereit ! ",1,"nochmal|Abbruch",zz%
  25.     IF zz%=2                                      !
  26.       GOTO end_druck                              ! Abort
  27.     ENDIF
  28.   WEND
  29.   @vollbild                                       ! Full screen
  30.   HIDEM                                           ! Hide Mouse Pointer
  31.   IF me%=60                                       ! System hardcopy:
  32.     HARDCOPY                                      ! HC execute
  33.   ENDIF
  34.   IF me%=59                                       ! 9-Pin-Print Routine
  35.     @hcp_9                                        ! execute
  36.   ENDIF
  37.   '
  38.   LPRINT CHR$(12)                                 ! Eject page
  39.   '
  40.   SHOWM                                           ! Mouse on again
  41.   end_druck:                                      ! Abort printing
  42. RETURN                                            ! Go back
  43. '
  44. > PROCEDURE hcp_9
  45.   '
  46.   adr=XBIOS(3)
  47.   drucker_init$=CHR$(27)+"l"+CHR$(20)             ! Left edge or similar
  48.   start$=CHR$(27)+"*"+CHR$(39)+CHR$(144)+CHR$(1)  ! Printer driver
  49.   '        ESC     *       '         = 399        ! (see text)
  50.   '
  51.   vorschub$=CHR$(27)+"J"+CHR$(23)+CHR$(13)        ! Blank line
  52.   '
  53.   OPEN "O",#2,"LST:"                              ! Output to Printer
  54.   PRINT #2,drucker_init$;
  55.   PRINT #2,CHR$(13)                               ! Blank line
  56.   FOR i%=0 TO 78 STEP 3                           ! Divide up
  57.     PRINT #2,start$;
  58.     FOR j%=399 TO 0 STEP -1                       ! All lines
  59.       date%=adr+(j%*80)++i%                       ! Fetch Data
  60.       PRINT #2,CHR$(PEEK(date%+0));               !
  61.       PRINT #2,CHR$(PEEK(date%+1));               !
  62.       IF i%<78                                    ! Last line
  63.         PRINT #2,CHR$(PEEK(date%+2));             ! Only two
  64.       ELSE                                        ! Print
  65.         PRINT #2,CHR$(0);
  66.       ENDIF
  67.     NEXT j%
  68.     PRINT #2,vorschub$;                           !
  69.   NEXT i%
  70.   '
  71.   CLOSE #2
  72. RETURN
  73. '
  74. > PROCEDURE hcp_9a
  75.   '
  76.   p_adr%=XBIOS(3)
  77.   puffer$=SPACE$(400)
  78.   drucker_init$=CHR$(27)+"*"+CHR$(5)+CHR$(400)+CHR$(1.5625) ! Graphic Mode
  79.   '
  80.   FOR start%=p_adr% TO p_adr%+79        ! 80 characters
  81.     adr%=VARPTR(puffer$)
  82.     z%=start%+32000                     !
  83.     REPEAT                              ! Vertical
  84.       SUB z%,80                         ! Next Line
  85.       BYTE{adr%}=BYTE{z%}               ! Copy Data
  86.       INC adr%                          ! Again
  87.     UNTIL z%=start%
  88.     LPRINT drucker_init$;puffer$;CHR$(13);CHR$(27);"J";CHR$(24); ! Output Line
  89.   NEXT start%
  90. RETURN
  91. '
  92.